package digui;

//public class digui_two {
//
////    https://leetcode.cn/problems/binary-tree-pruning/   二叉树的剪枝
//    class Solution {
//        public TreeNode pruneTree(TreeNode root) {
//            return dfs(root);
//        }
//        public TreeNode dfs(TreeNode root){
//            if(root==null){
//                return root;
//            }
//            TreeNode left=dfs(root.left);
//            TreeNode right=dfs(root.right);
//            //把修建后的结果赋回去
//            root.left=left;
//            root.right=right;
//            if(left==null&&right==null&&root.val==0){
//                return null;
//            }else{
//                return root;
//            }
//        }
//    }
//
//    //https://leetcode.cn/problems/validate-binary-search-tree/  判断二叉树是否为完全二叉树
//    class Solution1 {
//        public  long prev=Long.MIN_VALUE;
//        public boolean isValidBST(TreeNode root) {
//            return dfs(root);
//        }
//        public boolean dfs(TreeNode root){
//            if(root==null){
//                return true;
//            }
//            boolean left=dfs(root.left);
//            if(prev<root.val){
//                prev=root.val;
//            }else{
//                return false;
//            }
//            boolean right=dfs(root.right);
//
//            return left&&right;
//
//        }
//    }
//
////    https://leetcode.cn/problems/kth-smallest-element-in-a-bst/submissions/674239147/
//    class Solution2{
//        int count=0;
//        int ret=0;
//        public int kthSmallest(TreeNode root, int k) {
//            count=k;
//            dfs(root);
//            return ret;
//        }
//        public void dfs(TreeNode root){
//            if(root==null){
//                return;
//            }
//            dfs(root.left);
//            count--;
//            //剪枝操作
//            if(count==0){
//                ret=root.val;
//            }
//            dfs(root.right);
//        }
//    }
////    https://leetcode.cn/problems/binary-tree-paths/?envType=problem-list-v2&envId=DnfV22hg
//    class Solution3 {
//        List<String> finalret=new ArrayList<>();
//        public List<String> binaryTreePaths(TreeNode root) {
//            String path="";
//            dfs(root,path);
//            // finalret.add(path);
//            return finalret;
//        }
//        public void dfs(TreeNode root,String path){
//            if(root==null){
//                return;
//            }
//            if(root.left==null&&root.right==null){
//                path=path+String.valueOf(root.val);
//                finalret.add(path);
//                return;
//            }else{
//                path=path+String.valueOf(root.val)+"->";
//            }
//            // if(root.left==null){
//            //     return;
//            // }
//            dfs(root.left,path);
//            dfs(root.right,path);
//        }
//    }
//}
